package uk.ac.manchester.tewpl.iceiface.client.explorer.nodes;

import java.util.Collection;

import com.google.gwt.user.client.rpc.AsyncCallback;

import uk.ac.manchester.tewpl.iceiface.client.explorer.FilterResult;
import uk.ac.manchester.tewpl.iceiface.client.explorer.types.Uri;
import uk.ac.manchester.tewpl.iceiface.client.model.KBIndividualModel;

/*
 * Abstract class used to represent both Airports and Terminals,
 * forcing the provision of filter functionality
 */
public abstract class Node {
	
	// Return the node's uri
	public abstract Uri getUri();
	public abstract String getLabel();
	
	// Filter method
	public abstract void addKeywordFilter(String keyword);
	//public abstract void removeKeywordFilter(String keyword);
	
	// Set/Push results
	public abstract void addResult(FilterResult result);
	public abstract void addResults(Collection<FilterResult> results);

	// Get results
	public abstract Collection<FilterResult> getResults();
	
	// Clear filtered results
	public abstract void clearFilters();
	
	
	// Get filter keywords
	public abstract Collection<String> getFilterKeywords();
	
	// Return the number of results/members
	public abstract int getCount();
	
	// Boolean for filter being applied
	public abstract void setFilterIsApplied();
	
}
